class ArticleModel {
  int id;
  int? type;
  String? releaseTime;
  String? title;
  String? illustrate;
  String? content;
  String? pic;
  int? categoryId;
  int? labelId;
  int? authorId;
  int? language;
  int? status;
  int? isDelete;
  String? createDate;
  String? updateDate;
  int? visitsNum;
  int? isHome;
  int? isRecommend;
  int? isTop;
  dynamic startTime;
  dynamic endTime;
  int? examineType;
  int? searchNum;
  int? specialId;
  int? likeNum;
  int? denyNum;
  int? interacNum;
  String? ticketId;
  int? sourceType;
  int? sourceId;
  String? url;
  int? score;
  int? isPush;
  int? prohibitTran;
  int? allowTgpush;
  int? adminId;
  int? editType;
  int? isFollow;
  int? isCollection;
  int? releaseTimeStamp;
  Author? author;
  List<dynamic>? labelInfo;
  SpecialInfo? specialInfo;
  Jsdata? jsdata;

  ArticleModel({
    required this.id,
    this.type,
    this.releaseTime,
    this.title,
    this.illustrate,
    this.content,
    this.pic,
    this.categoryId,
    this.labelId,
    this.authorId,
    this.language,
    this.status,
    this.isDelete,
    this.createDate,
    this.updateDate,
    this.visitsNum,
    this.isHome,
    this.isRecommend,
    this.isTop,
    this.startTime,
    this.endTime,
    this.examineType,
    this.searchNum,
    this.specialId,
    this.likeNum,
    this.denyNum,
    this.interacNum,
    this.ticketId,
    this.sourceType,
    this.sourceId,
    this.url,
    this.score,
    this.isPush,
    this.prohibitTran,
    this.allowTgpush,
    this.adminId,
    this.editType,
    this.isFollow,
    this.isCollection,
    this.releaseTimeStamp,
    this.author,
    this.labelInfo,
    this.specialInfo,
    this.jsdata,
  });

  factory ArticleModel.fromJson(Map<String, dynamic> json) {
    return ArticleModel(
      id: json['id'] as int,
      type: json['type'] as int?,
      releaseTime: json['release_time'] as String?,
      title: json['title'] as String?,
      illustrate: json['illustrate'] as String?,
      content: json['content'] as String?,
      pic: json['pic'] as String?,
      categoryId: json['category_id'] as int?,
      labelId: json['label_id'] as int?,
      authorId: json['author_id'] as int?,
      language: json['language'] as int?,
      status: json['status'] as int?,
      isDelete: json['is_delete'] as int?,
      createDate: json['create_date'] as String?,
      updateDate: json['update_date'] as String?,
      visitsNum: json['visits_num'] as int?,
      isHome: json['is_home'] as int?,
      isRecommend: json['is_recommend'] as int?,
      isTop: json['is_top'] as int?,
      startTime: json['start_time'],
      endTime: json['end_time'],
      examineType: json['examine_type'] as int?,
      searchNum: json['search_num'] as int?,
      specialId: json['special_id'] as int?,
      likeNum: json['like_num'] as int?,
      denyNum: json['deny_num'] as int?,
      interacNum: json['interac_num'] as int?,
      ticketId: json['ticket_id'] as String?,
      sourceType: json['source_type'] as int?,
      sourceId: json['source_id'] as int?,
      url: json['url'] as String?,
      score: json['score'] as int?,
      isPush: json['is_push'] as int?,
      prohibitTran: json['prohibit_tran'] as int?,
      allowTgpush: json['allow_tgpush'] as int?,
      adminId: json['admin_id'] as int?,
      editType: json['edit_type'] as int?,
      isFollow: json['is_follow'] as int?,
      isCollection: json['is_collection'] as int?,
      releaseTimeStamp: json['release_time_stamp'] as int?,
      author: json['author'] != null
          ? Author.fromJson(json['author'] as Map<String, dynamic>)
          : null,
      labelInfo: json['label_info'] as List<dynamic>?,
      specialInfo: json['special_info'] != null
          ? SpecialInfo.fromJson(json['special_info'] as Map<String, dynamic>)
          : null,
      jsdata: json['jsdata'] != null
          ? Jsdata.fromJson(json['jsdata'] as Map<String, dynamic>)
          : null,
    );
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = <String, dynamic>{};
    data['id'] = id;
    data['type'] = type;
    data['release_time'] = releaseTime;
    data['title'] = title;
    data['illustrate'] = illustrate;
    data['content'] = content;
    data['pic'] = pic;
    data['category_id'] = categoryId;
    data['label_id'] = labelId;
    data['author_id'] = authorId;
    data['language'] = language;
    data['status'] = status;
    data['is_delete'] = isDelete;
    data['create_date'] = createDate;
    data['update_date'] = updateDate;
    data['visits_num'] = visitsNum;
    data['is_home'] = isHome;
    data['is_recommend'] = isRecommend;
    data['is_top'] = isTop;
    data['start_time'] = startTime;
    data['end_time'] = endTime;
    data['examine_type'] = examineType;
    data['search_num'] = searchNum;
    data['special_id'] = specialId;
    data['like_num'] = likeNum;
    data['deny_num'] = denyNum;
    data['interac_num'] = interacNum;
    data['ticket_id'] = ticketId;
    data['source_type'] = sourceType;
    data['source_id'] = sourceId;
    data['url'] = url;
    data['score'] = score;
    data['is_push'] = isPush;
    data['prohibit_tran'] = prohibitTran;
    data['allow_tgpush'] = allowTgpush;
    data['admin_id'] = adminId;
    data['edit_type'] = editType;
    data['is_follow'] = isFollow;
    data['is_collection'] = isCollection;
    data['release_time_stamp'] = releaseTimeStamp;
    data['author'] = author?.toJson();
    data['label_info'] = labelInfo;
    data['special_info'] = specialInfo?.toJson();
    data['jsdata'] = jsdata?.toJson();
    return data;
  }
}

class Author {
  int? id;
  String? mobile;
  String? nickname;
  String? avatarImg;
  int? type;

  Author({this.id, this.mobile, this.nickname, this.avatarImg, this.type});

  factory Author.fromJson(Map<String, dynamic> json) {
    return Author(
      id: json['id'] as int?,
      mobile: json['mobile'] as String?,
      nickname: json['nickname'] as String?,
      avatarImg: json['avatar_img'] as String?,
      type: json['type'] as int?,
    );
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = <String, dynamic>{};
    data['id'] = id;
    data['mobile'] = mobile;
    data['nickname'] = nickname;
    data['avatar_img'] = avatarImg;
    data['type'] = type;
    return data;
  }
}

class SpecialInfo {
  int? id;
  String? title;
  String? pic;
  int? sort;
  int? status;
  String? createTime;
  String? updateTime;

  SpecialInfo({
    this.id,
    this.title,
    this.pic,
    this.sort,
    this.status,
    this.createTime,
    this.updateTime,
  });

  factory SpecialInfo.fromJson(Map<String, dynamic> json) {
    return SpecialInfo(
      id: json['id'] as int?,
      title: json['title'] as String?,
      pic: json['pic'] as String?,
      sort: json['sort'] as int?,
      status: json['status'] as int?,
      createTime: json['create_time'] as String?,
      updateTime: json['update_time'] as String?,
    );
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = <String, dynamic>{};
    data['id'] = id;
    data['title'] = title;
    data['pic'] = pic;
    data['sort'] = sort;
    data['status'] = status;
    data['create_time'] = createTime;
    data['update_time'] = updateTime;
    return data;
  }
}

class Jsdata {
  int? timesTamp;
  String? nonceStr;
  String? signaTure;
  String? appId;
  String? url;

  Jsdata({this.timesTamp, this.nonceStr, this.signaTure, this.appId, this.url});

  factory Jsdata.fromJson(Map<String, dynamic> json) {
    return Jsdata(
      timesTamp: json['timesTamp'] as int?,
      nonceStr: json['nonceStr'] as String?,
      signaTure: json['signaTure'] as String?,
      appId: json['appId'] as String?,
      url: json['url'] as String?,
    );
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = <String, dynamic>{};
    data['timesTamp'] = timesTamp;
    data['nonceStr'] = nonceStr;
    data['signaTure'] = signaTure;
    data['appId'] = appId;
    data['url'] = url;
    return data;
  }
}
